// Decompiled on 周六 2月 22 19:31:49 CST 2025 with Zomboid Decompiler v0.1.3 using Vineflower.
package zombie.radio.globals;

public abstract class RadioGlobal<T> {
    protected String name;
    protected T value;
    protected RadioGlobalType type = RadioGlobalType.Invalid;

    protected RadioGlobal(T object, RadioGlobalType radioGlobalType) {
        this(null, (T)object, radioGlobalType);
    }

    protected RadioGlobal(String string, T object, RadioGlobalType radioGlobalType) {
        this.name = string;
        this.value = (T)object;
        this.type = radioGlobalType;
    }

    public final RadioGlobalType getType() {
        return this.type;
    }

    public final String getName() {
        return this.name;
    }

    public abstract String getString();

    public abstract CompareResult compare(RadioGlobal target, CompareMethod method);

    public abstract boolean setValue(RadioGlobal _value, EditGlobalOps operator);
}
